package com.zhuhjay.service.system.model.vo;

import com.zhuhjay.common.base.util.BeanBuilder;
import com.zhuhjay.service.system.model.entity.SystemNotice;
import lombok.Data;

import java.util.Date;

/**
 * @author ZhuHJay
 * @date 2023/4/13 16:35
 */
@Data
public class NoticeInfoVo {

    private int id;
    private String title;
    private String content;
    private Date createTime;
    private Date updateTime;
    private String createUser;
    private Integer status;
    private Boolean read;

    public static NoticeInfoVo of2User(SystemNotice notice, Boolean read) {
        return BeanBuilder.builder(NoticeInfoVo::new)
                .with(NoticeInfoVo::setId, notice.getId())
                .with(NoticeInfoVo::setTitle, notice.getTitle())
                .with(NoticeInfoVo::setContent, notice.getContent())
                .with(NoticeInfoVo::setUpdateTime, notice.getUpdateTime())
                .with(NoticeInfoVo::setStatus, notice.getStatus())
                .with(NoticeInfoVo::setRead, read)
                .build();
    }

    public static NoticeInfoVo of2Admin(SystemNotice notice, String createUser) {
        return BeanBuilder.builder(NoticeInfoVo::new)
                .with(NoticeInfoVo::setId, notice.getId())
                .with(NoticeInfoVo::setTitle, notice.getTitle())
                .with(NoticeInfoVo::setContent, notice.getContent())
                .with(NoticeInfoVo::setCreateTime, notice.getCreateTime())
                .with(NoticeInfoVo::setUpdateTime, notice.getUpdateTime())
                .with(NoticeInfoVo::setCreateUser, createUser)
                .with(NoticeInfoVo::setStatus, notice.getStatus())
                .build();
    }

}
